当前位置: 首页 > news >正文

山西中色十二冶金建设有限公司网站/海南百度推广公司有哪些

山西中色十二冶金建设有限公司网站,海南百度推广公司有哪些,网站建设与维护教学视频教程,做网页的网站TypeChat是C# 和 TypeScript 之父 Anders Hejlsberg全新的开源项目。使用AI在自然语言和应用程序和API之间建立桥梁,并且使用TypeScript。 现在出现了很多大型语言模型,但是如何将这些模型最好地集成到现有的应用程序中,如何使用人工智能来接…

TypeChat是C# 和 TypeScript 之父 Anders Hejlsberg全新的开源项目。使用AI在自然语言和应用程序和API之间建立桥梁,并且使用TypeScript。

现在出现了很多大型语言模型,但是如何将这些模型最好地集成到现有的应用程序中,如何使用人工智能来接受用户请求并转化为我们的应用程序可以运行的内容,并且确保我们的程序是安全的,可以信任的?

TypeChat 就是为了解决这样的问题。通过编写TypeScript类型定义,而不是自然语言提示来指导语言模型提供类型良好的结构化的响应数据,用schema替代prompt。


准备工作

  1. TypeChat默认是使用openAI或者Azure openAI的api,需要提前准备好,这里我使用Azure openAI的api(比较好申请且不会被封)。如果不使用openAI可以自己实现替换,这里暂时先用openAI

  2. 安装typechat依赖

    pnpm install typechat
    
  3. 在根目录下.env配置openai的key

AZURE_OPENAI_ENDPOINT=https://YOUR_RESOURCE_NAME.openai.azure.com/openai/deployments/YOUR_DEPLOYMENT_NAME/chat/completions?api-version=2023-05-15
AZURE_OPENAI_API_KEY=Your Azure OpenAI API key# OPENAI_MODEL=The OpenAI model name (e.g. `gpt-3.5-turbo` or `gpt-4`)
# OPENAI_API_KEY=Your OpenAI API key

通过自然语言请求掘金文章列表的Demo

  1. 定义Schema,这就是希望模型将自然语言按照定义的类型为约束,生成结构化的响应数据
// 定义排序类型,按照推荐or最新
export type SortType = "recommend" | "latest";// 定义文章类型
export type ArticleType = "frontend" | "backend" | "android" | "ios" | "ai";// 定义函数,获取文章列表
export type API = {getArticles(sortType: SortType,limit: number,categoryId?: ArticleType): void;
};
  1. 自然语言请求并解析
import {createLanguageModel,processRequests,createProgramTranslator,evaluateJsonProgram,getData,
} from "typechat";// 根据环境变量的配置,创建语言模型,
// typechat为了简化依赖,所以没有用azure或者openai的sdk,而直接通过url接口请求
// 如果不使用openai的模型也可以通过TypeChatLanguageModel接口实现自己的LLM交互
const model = createLanguageModel(process.env);
// 读取上一步定义的模型文件
const schema = fs.readFileSync(join(dirname(fileURLToPath(import.meta.url)), "Schema.ts"),"utf8"
);// 创建一个对象,该对象可以将自然语言请求转换为程序,以JSON的形式展现,由上一步定义的API组成函数
const translator = createProgramTranslator(model, schema);// 以交互方式或从命令行上指定的输入文件处理请求
processRequests("说你想干嘛--->", process.argv[2], async (request) => {// 将自然语言请求转换为T类型的对象。const response = await translator.translate(request);if (!response.success) {return;}const program = response.data;// 将JSON转换为TypeScript代码以进行验证。// 如果转换成功,则返回一个Success<string>对象;如果JSON无法转换,则返回Error对象。console.log(getData(translator.validator.createModuleTextFromJson(program)));/*** 使用简单的解释器评估JSON程序。函数调用会被传递给第二个参数onCall回调函数进行调度。* @param program 要评估的JSON程序* @param onCall 用于处理程序中函数调用的回调函数* @returns 返回一个promise*/const result: any = await evaluateJsonProgram(program, handleCall);console.log(`Result: ${result}`);
});const handleCall = async (func: string, args: any[]): Promise<any> => {// 对解析后的函数和参数进行处理,并返回一个promise// 请求掘金api并获取响应数据返回结果.....return
};

完整代码在https://github.com/zhaomengfan/typechat-example


启动任务,出现交互输入,这里就是输入需要解析的自然语言

1.png

输入”看些新文章”,运行一步步打印结果

// 得到自然语言解析后的转换的对象 program
{"@steps": [{"@func": "getArticles","@args": ["latest",10]}]
}// createModuleTextFromJson将JSON转换为TypeScript代码以进行验证,
// 返回的TypeScript源代码为ECMAScript模块,该模块从“./schema”导入一个或多个类型,
// 并以适合TypeScript编译器进行类型检查的方式将这些类型与JSON对象的表示形式组合在一起
import { API } from "./schema";
function program(api: API) {return api.getArticles("latest", 10);
}//evaluateJsonProgram评估program并且,将解析后的func,args作为参数传给onCall
// handleCall获取下面的func和args后进行相应处理并返回结果,这里是去请求接口// func
getArticles 
// args
[ 'latest', 10 ]

最后得到结果

2.png


再尝试一个例子,输入“我想看看前端推荐的内容”,并执行得到结果

// program
{"@steps": [{"@func": "getArticles","@args": ["recommend",10,"frontend"]}]
}// createModuleTextFromJson
import { API } from "./schema";
function program(api: API) {return api.getArticles("recommend", 10, "frontend");
}// evaluateJsonProgram
// func
getArticles 
// args
[ 'recommend', 10, 'frontend' ]

3.png

以上就是一个简单的示例,根据自然语言,并根据定义的Schema解析为类型安全的结构化数据,并且根据解析的结果去进行相应的请求获取文章列表。

官方网站也提供了一些示例可以体验一下https://microsoft.github.io/TypeChat/docs/examples/

总结:

TypeChat让我们能轻松地使用 TypeScript 类型来引导模型,可以安全的将大语言模型集成到现有的应用程序中,可以探索很多新的产品形式。
不过因为刚开源TypeChat也不是很完善,比如目前还不能对话交互。

总之,这是一个对熟悉TypeScript的你来说一个轻松使用大语言模型连接应用程序的方式,大家可以多尝试尝试,并持续关注。

http://www.jmfq.cn/news/5364649.html

相关文章:

  • 广东工程建设监理有限公司网站/网络视频营销平台
  • 武汉麦诺信网站建设/关键词排名seo
  • 易企秀 旗下 网站建设/seo资讯网
  • 留学中介网站建设方案/商品seo优化是什么意思
  • 工程建设公司网站/雅思培训机构哪家好机构排名
  • 计算机网站建设体会/建立免费个人网站
  • 天津建设工程评标专家网站/镇江关键字优化品牌
  • 网站集约化建设 统一出口/北京广告公司
  • 我为什么电商要学网站建设/seo长尾快速排名
  • 建设企业高端网站/网站查询
  • 建设网站图/青岛seo排名收费
  • 数字资产交易网站建设/百度高搜
  • 怎么写网站建设的说明/广告公司营销策划方案
  • 达濠市政建设有限公司网站/百度推广登陆平台
  • 安徽省建设业协会网站/宁波网站推广公司价格
  • 广东建设工程造价管理协会网站/百度助手官网
  • 网站建设需要那些人才/seo优化方案项目策划书
  • 德宏北京网站建设/百度人工服务热线电话
  • 东西湖区城乡建设局网站/免费的网页入口
  • 网站建设排名政务/国外网站加速
  • 泉州哪家网站建设公司好/整站优化方案
  • 西安网站建设xamokj/国际新闻界
  • av网站正在建设中/网络营销和传统营销的区别和联系
  • 连云港东海网站建设/跨境电商平台推广
  • 中国建设银行北京分行门户网站公告/搜索引擎营销的方法不包括
  • 查建设项目开工是看建委网站吗/全网营销代运营
  • 成都网站网站建设/短视频推广平台有哪些
  • 政府网站建设的目的和意义/短视频推广引流
  • 智慧旅游门户网站建设方案/怎么找需要做推广的公司
  • 建设读书网站的意义/西安关键词排名优化